package test.n00200;


public class Problem00281 {
    public static void main(String[] args) {
        //println("hello", "ll");
        println("mississippi", "issip");
    }

    public static void println(String haystack, String needle) {
        Solution ss = new Solution();
        System.out.println(haystack + "," + needle + "," + ss.strStr(haystack, needle));
    }

    private static class Solution {
        /**
         * 给你两个字符串 haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串出现的第一个位置（下标从 0 开始）。如果不存在，则返回  -1 。
         * <p>
         * 来源：力扣（LeetCode）
         * 链接：https://leetcode.cn/problems/implement-strstr
         * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
         *
         * @param haystack
         * @param needle
         * @return
         */
        public int strStr(String haystack, String needle) {
            int p1 = 0, p2 = 0;
            while (p1 < haystack.length() && p2 < needle.length()) {
                if (haystack.charAt(p1) == needle.charAt(p2)) {
                    p1++;
                    p2++;
                } else {
                    p1++;
                    p1 = p1 - p2;
                    p2 = 0;
                }

                if (p2 == needle.length()) {
                    return p1 - p2;
                }
            }
            return -1;
        }

    }
}
